#include <stdio.h>

// 在Linux终端屏幕显示欢迎信息
static void print_welcome_msg()
{
    printf("Welcome!\n");
    fflush(stdout);
}


// 在Linux终端屏幕显示帮助信息
static void print_usage()
{
    printf("参考官方示例程序 examples/l2fwd/main.c:\n");
    const char URL[] =
        "https://gitee.com/mirrors/dpdk/blob/local-23.07/examples/l2fwd/main.c";
    printf("%s\n", URL);
    fflush(stdout);
}


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <inttypes.h>
#include <sys/types.h>
#include <sys/queue.h>
#include <setjmp.h>
#include <stdarg.h>
#include <ctype.h>
#include <errno.h>
#include <getopt.h>
#include <signal.h>
#include <stdbool.h>

#include <rte_common.h>
#include <rte_log.h>
#include <rte_malloc.h>
#include <rte_memory.h>
#include <rte_memcpy.h>
#include <rte_eal.h>
#include <rte_launch.h>
#include <rte_cycles.h>
#include <rte_prefetch.h>
#include <rte_lcore.h>
#include <rte_per_lcore.h>
#include <rte_branch_prediction.h>
#include <rte_interrupts.h>
#include <rte_random.h>
#include <rte_debug.h>
#include <rte_ether.h>
#include <rte_ethdev.h>
#include <rte_mempool.h>
#include <rte_mbuf.h>
#include <rte_string_fns.h>

//===================================
// 主程序
int l2fwd_demo_thread(int argc, char **argv)
{
    print_welcome_msg();
    print_usage();

    struct lcore_queue_conf *qconf;
    int ret;
    uint16_t nb_ports;
    uint16_t nb_ports_available = 0;
    uint16_t portid, last_port;
    unsigned lcore_id, rx_lcore_id;
    unsigned nb_ports_in_mask = 0;
    unsigned int nb_lcores = 0;
    unsigned int nb_mbufs;

    /* Init DPDK EAL. */
    ret = rte_eal_init(argc, argv);
    if (ret < 0) {
        rte_exit(EXIT_FAILURE, "DPDK命令行参数无效 (请参考官方示例程序 examples/l2fwd/main.c)\n"
                               "https://gitee.com/mirrors/dpdk/blob/local-23.07/examples/l2fwd/main.c\n");
    }

    // 主程序(此处省略10000行...)
    // 主程序(此处省略10000行...)
    // 主程序(此处省略10000行...)
    // 主程序(此处省略10000行...)

    /* clean up the EAL */
    rte_eal_cleanup();

    printf("Bye...\n");

    return ret;
}
//===================================



